package generic06;

import java.util.ArrayList;
import java.util.Collection;

public class Demo01 {
    public static void main(String[] args) {
        Collection c  = new ArrayList(); // 由于接口上的泛型没有指定类型，所以Collection<E>，中的E泛型变量被替换成Object类型
                                       // 所以add(E e)方法上的E也会被替换成Object类型
        c.add("abc");
        c.add(123);

        for (Object o : c) { // 第一次循环遍历到“abc” ,Object o = "abc";
                            // 第二次循环遍历到123  , Object o = new Integer(123)  自动装箱
            String str = (String)o; // 第一次遍历到“abc”, Object o = "abc"  结果为3
                                   // 第二次循环遍历到123，也是需要强转String str = o = new Integer(123)
                                    // 但是String 与Integer不是父子关系，
                                  // 所以出现强转异常  ClassCastException
            System.out.println(str.length());
        }
    }
}
